package JVM.第08篇_JVM性能调优案例篇;

/**
 * 新生代与老年代的比例
 *   jps  查看java的所有线程
 *   jmap -heap 线程数   //查看此线程的堆使用情况
 *
 * 参数AdaptiveSizePolicy
 * 我们可以在jvm参数中配置开启和关闭该配置:
 * #开启: -XX: +UseAdaptiveSizePolicy
 * #关闭 -XX: -UseAdaptiveSizePolicy
 * 注意事项:
 * 1、在JDK 1.8中，如果使用CMS，无论UseAdaptiveSizePolicy 如何设置，
 * 都会将 UseAdaptiveSizePolicy 设置为false;不过不同版本的JDK存在差异;
 * 2、UseAdaptiveSizePolicy不要 和SurvivorRatio参数显示设置搭配使用，
 * 一起使用会 导致参数失效:
 * 3、由于UseAdaptiveSizePolicy会动态调整Eden、 Survivor 的大小，有些情况存在
 * Survivor被自动调为很小，比如十几MB甚至几MB的可能，这个时候YGC回收掉Eden区后， 还
 * 存活的对象进入Survivor装不下，就会直接晋升到老年代，导致老年代占用空间逐渐增加，
 * 从而触发FULL GC，如果一次FULL GC的耗时很长(比如到达几百亳秒)，那么在要求高响应的
 * 系统就是不可取的。
 *
 * 附:对于面向外部的大流量、低延返系统，不建议启用此参数，建议关闭该参数。
 * 如果不想动态调整内存大小，以下是解决方案:
 * 1、保持使用UseParallelGC, 显式设置-XX:SurvivorRatio=8.
 * 2、使用CMS 垃圾回收器。CMS默认关闭AdaptiveSizePolicy。
 * 配置参数  -Xx: +UseConcMarkSweepGC
 *
 */
public class C4_新生代与老年代的比例 {

}
